全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-11 8 分钟 ✍️ juanwangdev

Fork 工作流

Fork 工作流是开源项目常用的协作模式,贡献者无需直接访问源仓库。

什么是 Fork 工作流

Fork 工作流允许任何贡献者参与项目开发:

  1. Fork 源仓库到个人账号
  2. 在个人仓库开发
  3. 通过 Pull Request 提交贡献
  4. 维护者审核后合并

Fork 工作流流程

Bash
┌─────────────────────────────────────────────────────┐
│                    源仓库(upstream)                │
│                    main: A → B → C                   │
└─────────────────────────────────────────────────────┘
                         ↑
                    PR Merge
                         │
┌─────────────────────────────────────────────────────┐
│                Fork 仓库(origin)                   │
│                main: A → B → C → D → E               │
│                         ↑      ↑                     │
│                      rebase   feature分支            │
└─────────────────────────────────────────────────────┘

Fork 工作流步骤

步骤1:Fork 仓库

Bash
# 在 GitHub/GitLab 上点击 Fork 按钮
# Fork 到个人账号

步骤2:克隆个人仓库

Bash
# 克隆 Fork 的仓库
git clone https://github.com/yourname/project.git

# 添加源仓库作为上游
git remote add upstream https://github.com/original/project.git

# 查看远程仓库
git remote -v
# origin    https://github.com/yourname/project.git (fetch)
# upstream  https://github.com/original/project.git (fetch)

步骤3:同步上游更新

Bash
# 获取上游更新
git fetch upstream

# 合入上游 main
git checkout main
git merge upstream/main

# 或使用 rebase
git rebase upstream/main

# 推送到个人仓库
git push origin main

步骤4:创建功能分支

Bash
# 创建新分支
git checkout -b feature/new-feature

# 开发并提交
git add .
git commit -m "Add new feature"

# 推送到个人仓库
git push origin feature/new-feature

步骤5:创建 Pull Request

Bash
# 在 GitHub 上创建 PR
# 从 yourname/project:feature 到 original/project:main

步骤6:同步并更新 PR

text
# PR 期间上游有更新
git fetch upstream
git checkout feature/new-feature
git rebase upstream/main

# 推送更新 PR
git push origin feature/new-feature -f

Fork 工作流优势

优势说明
开放协作无需权限即可贡献
独立开发个人仓库自由开发
安全可控维护者审核合并
清晰追溯PR 记录贡献历史

常见场景

场景操作
开源贡献Fork → 开发 → PR
团队协作Fork → Review → Merge
实验开发Fork → 尝试 → 丢弃

Fork vs 直接协作

特性Fork 工作流直接协作
权限要求无需权限需要写权限
适用场景开源项目团队内部
代码审核强制 PR可选审核
灵活性个人仓库独立共享仓库

Fork 工作流是参与开源项目的标准方式。

要点总结

  1. Fork 源仓库到个人账号
  2. 添加 upstream 远程仓库
  3. 定期同步 upstream 更新
  4. 在功能分支开发后创建 PR
  5. rebase upstream 保持 PR 最新
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 Code Review 最佳实践
下一篇 → Pull Request 流程
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码